package com.jy.rhin.infra.repo.audit.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jy.rhin.domain.audit.entity.AuditInfo;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.util.ObjectUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * @author dhl
 * @date 2022/5/20
 * @Description 安全审计事件记录;
 */
@Data
@NoArgsConstructor
@TableName("t_audit_event_info")
public class AuditEventInfoPO implements Serializable {

    public AuditEventInfoPO(long id, AuditInfo entity) {
        if (ObjectUtils.isEmpty(entity.getShiJianJg())) {
            entity.setShiJianJg("0");
        }
        if (!ObjectUtils.isEmpty(entity)) {
            BeanUtils.copyProperties(entity, this);
        }
        this.id = id;
    }

    public AuditInfo toDO() {
        AuditInfo entity = new AuditInfo();
        BeanUtils.copyProperties(this, entity);
        return entity;
    }

    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 记录事件发起的时间
     */
    @TableField("fa_sheng_sj")
    private Date faShengSj;
    /**
     * 审计事件类型;事件类型displayName
     */
    @TableField("shi_jian_lx")
    private String shiJianLx;
    /**
     * 事件结果代码
     */
    @TableField("shi_jian_jg")
    private String shiJianJg;
    /**
     * 参与者;参与者displayName，多个用、分割
     */
    @TableField("can_yu_zhe")
    private String canYuZhe;
    /**
     * 审计源;审计源displayName，多个用、分割
     */
    @TableField("shen_ji_yuan")
    private String shenJiYuan;
    /**
     * 原始json串;xml转成JavaBean后，转成的json参数
     */
    @TableField("json_text")
    private String jsonText;
    /**
     * 原始xml串;webService标准接口收到的xml参数
     */
    @TableField("xml_text")
    private String xmlText;
    /**
     * 记录创建时间
     */
    @TableField("chuang_jian_sj")
    private Date chuangJianSj;
    /**
     * 校验状态
     */
    @TableField("check_status")
    private Boolean checkStatus;
    /**
     * 校验失败原因
     */
    @TableField("failure_reason")
    private String failureReason;

}
